package com.academic_system.service;

import com.academic_system.model.PartyMember;
import com.academic_system.model.PartyMemberPartyStudent;
import com.academic_system.model.PartyMemberTemp;
import com.academic_system.util.Message;
import org.springframework.stereotype.Service;

/**
 * @description 党支部成员业务接口
 * @project_name PartyMemberService
 * @package com.academic_system.service
 **/
@Service
public interface PartyMemberService {
    /**
     * @param partyMemberPartyStudent
     * @Description 查询党支部成员信息(分支部、身份、年级)
     * @methodName queryPartyMemberByConditions
     * @returnType Message
     **/
    Message queryPartyMemberByConditions(PartyMemberPartyStudent partyMemberPartyStudent);



//    /**
//     * @param partyMember
//     * @Description 修改学生表中政治身份类型
//     * @methodName updateStudentPoli
//     * @returnType boolean
//     **/
//    boolean updateStudentPoli(PartyMember partyMember);

    /**
     * @param party_member_account
     * @Description 删除党员
     * @methodName deletePartyMember
     * @returnType boolean
     **/
    boolean deletePartyMember(int party_member_account);

    /**
     * @param party_member_account
     * @Description 修改学生表中政治身份类型为0（即除去其政治身份）
     * @methodName updateStudentPoliWithO
     * @returnType boolean
     **/
    boolean updateStudentPoliWithO(int party_member_account);

    /**
     * @param party_organization_num
     * @Description 党支部成员统计，通过党支部编号
     * @methodName countMember
     * @returnType Message
     **/
    Message countMember(int  party_organization_num);

    /**
     * @param party_organization_num
     * @Description 根据党支部账户（教师编号/学生编号）查询所在党组织编号
     * @methodName findPONBypartyMemberAccount
     * @returnType int
     **/
    int findPONBypartyMemberAccount(int party_organization_num);

    /**
     * @param party_member_account
     * @Description 根据党支部账户（教师编号/学生编号）查询所在党员信息
     * @methodName queryPartyMemberByPMA
     * @returnType Message
     **/
    Message queryPartyMemberByPMA(int party_member_account);

//    /**
//     * @param partyMember
//     * @Description 修改党支部成员信息
//     * @methodName updatePartyMember
//     * @returnType boolean
//     **/
//    boolean updatePartyMember(PartyMember partyMember);

    /**
     * @param partyMemberTemp
     * @Description 保存
     * @methodName savePartyMember
     * @returnType Message
          **/
    Message savePartyMember(PartyMemberTemp partyMemberTemp);

    /**
     * @param partyMember
     * @Description 提交
     * @methodName commitPartyMember
     * @returnType Message
     **/
    Message commitPartyMember(PartyMember partyMember);

    /**
     * @param partyMember
     * @Description 回滚
     * @methodName rollback
     * @returnType Message
     **/
    Message rollback(PartyMember partyMember);





    /**
     * @param party_member_account
     * @Description 查询该学生政治类型
     * @methodName queryStudentPoli
     * @returnType Message
     **/
    Message queryStudentPoli(int party_member_account);

//    /**
//     * @param party_member_account
//     * @Description 查找党员临时表是否有某党员的修改记录
//     * @methodName queryPartyMemberTemp
//     * @returnType boolean
//     **/
//    boolean queryPartyMemberTemp(int party_member_account);
}
